/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ces31.ChineseDicesCommon;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

/**
 *
 * @author Anderson Aiziro
 */
public interface ClienteInterface extends Remote{
    /**
    * Dados do cliente que o servidor deve saber para poder se conectar
    */
    public static int port = 1099;

    public static String bindname = "ChineseDicesClient";
    
     /**
     * Interfaces do cliente. Interfaces acessadas pelo servidor para executar ação no cliente
     */


/**
 * Habilita os botoes na tela de jogo do cliente, representando sua vez de jogar.
 *
 * @throws java.rmi.RemoteException
 */
    public void habilitarJogada() throws RemoteException;
   

/**
 * Finaliza o jogo nos clientes.
 * Quando um dos jogadores remove todos os dados ou quando um dos jogadores desiste.
 *
 * @param name
 * @throws java.rmi.RemoteException
 */
    public void apresentarResultadoDoJogo(String name) throws RemoteException;


/**
 * Envia a afirmação para o cliente. Representa o broadcasting da mensagem.
 * O servidor envia a todos os clientes a mensagem que um dos clientes enviou.
 *
 * @param quantity
 * @param value
 * @throws java.rmi.RemoteException
 */
    public void apresentarAfirmacao(Integer quantity, Integer value) throws RemoteException;

/**
 * Envia uma notificação ao cliente.
 * É exibido uma tela pop-up com a mensagem passada como parametro.
 *
 * @param message
 * @throws java.rmi.RemoteException
 */
    public void entregarMensagem(String message) throws RemoteException;

/**
 * Atualiza os clientes para iniciar uma nova rodada. Devemos saber os meus novos dados sorteados,
 * a quantidade de dados do servidor e o vencedor da rodada passada.
 *
 * @param myValues
 * @param adversaryQuantity
 * @param winner
 * @throws java.rmi.RemoteException
 */
    public void atualizarInformacoesJogador(List<Integer> myValues, Integer adversaryQuantity, String winner) throws RemoteException;

/**
 * Monta o tabuleiro em cada um dos clientes quando vamosiniciar um jogo de Dados Chineses
 *
 * @param player
 * @param opponent
 * @throws java.rmi.RemoteException
 */
    public void iniciarJogo(String player, String opponent) throws RemoteException;
}
